package org.rslai.util.imageprocess.position;

/**
 * 保存区块的位置及大小信息
 * @author rslai
 */
public class Area {
	private int x;
	private int y;
	private int width;
	private int height;

	/**
	 * 默认构造函数
	 */
	public Area() {

	}

	/**
	 * 设置左上角坐标的构造函数
	 * @param x 区块左上角的 x 坐标
	 * @param y 区块左上角的 y 坐标
	 */
	public Area(int x, int y) {
		this.x = x;
		this.y = y;
	}

	/**
	 * 设置左上角坐标及大小的构造函数
	 * @param x 区块左上角的 x 坐标
	 * @param y 区块左上角的 y 坐标
	 * @param width 区块的宽度
	 * @param height 区块的高度
	 */
	public Area(int x, int y, int width, int height) {
		this.x = x;
		this.y = y;
		this.width = width;
		this.height = height;
	}

	/**
	 * 设置区块左上角的 x 坐标
	 * @param x x 坐标
	 */
	public void setX(int x) {
		this.x = x;
	}

	/**
	 * 取得区块左上角的 x 坐标
	 * @return x 坐标
	 */
	public int getX() {
		return this.x;
	}

	/**
	 * 设置区块左上角的 y 坐标
	 * @param y y 坐标
	 */
	public void setY(int y) {
		this.y = y;
	}

	/**
	 * 取得区块左上角的 y 坐标
	 * @return y 坐标
	 */
	public int getY() {
		return this.y;
	}

	/**
	 * 设置区块的宽度
	 * @param width 宽度
	 */
	public void setWidth(int width) {
		this.width = width;
	}

	/**
	 * 取得区块的宽度
	 * @return 宽度
	 */
	public int getWidth() {
		return this.width;
	}

	/**
	 * 设置区块的高度
	 * @param height 高度
	 */
	public void setHeight(int height) {
		this.height = height;
	}

	/**
	 * 取得区块的高度
	 * @return 高度
	 */
	public int getHeight() {
		return this.height;
	}

	@Override
	public String toString() {
		StringBuffer sb = new StringBuffer();
		sb.append(this.getClass().getName());
		sb.append("[");
		sb.append("X:" + x);
		sb.append(",Y:" + y);
		sb.append(",Width:" + this.width);
		sb.append(",Height:" + this.height);
		sb.append("]");

		return sb.toString();
	}

}
